1. Field of the Invention
This invention relates, in general, to temporary data storage areas such as buffers. More particularly, this invention relates to the management of receive buffers and transmit buffers used for serial communications or other temporary data storage applications.
2. Relevant Background
A buffer is a temporary data storage area typically maintained in a memory element (i.e., a RAM chip) or within the memory area of an integrated circuit or like device (i.e., the on-board RAM of a microprocessor or microcontroller integrated circuit).
In a variety of conventional applications, separate buffers are utilized to separately store different sets of data. For example, in integrated circuits or devices for serial bus interface applications, a large FIFO (first-in, first-out) buffer is often needed to buffer data received and the data to be transmitted. The FIFO buffer is typically built from a single RAM which is divided into two separate buffers, a receive data buffer and a transmit data buffer.
Buffer sizes are typically established at device initialization and the buffer sizes remain statically unchanged as long as the device is powered on. Depending on the application and the expected amount of data to be stored within a buffer, the area of a conventional buffer is often a significant portion of the total silicon area of an integrated circuit or device, since a large amount of space must be reserved so that the buffer does not overflow or underflow during a receive or transmit operation. If the buffer is about to overflow, the device can do little to avoid the overflow.